package sjjg.graph;

import java.util.ArrayDeque;
import java.util.Queue;

public class Graph {
    //节点数
    private int V;
    //无向边数
    private int E;
    //邻接表
    public Queue<Integer>[]adj;
    //构造函数初始化数据
    Graph(int V){
        this.V=V;
        this.E=0;
        this.adj=new ArrayDeque[V];
        for (int i = 0; i < adj.length; i++) {
            adj[i]=new ArrayDeque<>();
        }
    }
    //返回顶点数
    public int V(){
        return V;
    }
    //返回无向边数
    public int E(){
          return E;
    }
    //为某个节点添加新边
    public void addEdge(int v,int w){
          adj[v].add(w);
          adj[w].add(v);
          E++;
    }
    //返回该节点所相邻的所有节点
    public Queue<Integer>adj(int v){
          return adj[v];
    }
}
